home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / SWAG / SWAGA_C / CURSOR.SWG / 0005_Cursor Size & Detect.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  1KB  |  62 lines

  1. {
  2. SEAN PALMER
  3. }
  4.  
  5. unit cursor; {Public domain, by Sean Palmer aka Ghost}
  6.  
  7. interface
  8.  
  9. var
  10.   maxSize : byte;
  11.  
  12. procedure setSize(scans : byte);  {set size from bottom, or 0 for off}
  13. procedure detect;     {get max scan lines by reading current cursor}
  14.  
  15. implementation
  16.  
  17. procedure setSize(scans : byte);
  18. var
  19.   t : byte;
  20. begin
  21.   if scans = 0 then
  22.     t := $20
  23.   else
  24.     t := maxSize - scans;
  25.   asm
  26.     mov ah, 1
  27.     mov bh, 0
  28.     mov ch, t
  29.     mov cl, maxSize
  30.     dec cl
  31.     int $10
  32.   end;
  33. end;
  34.  
  35. procedure detect; assembler;
  36. asm  {do NOT call while cursor's hidden}
  37.   mov ah, 3
  38.   mov bh, 0
  39.   int $10
  40.   inc cl
  41.   mov maxSize, cl
  42. end;
  43.  
  44. begin
  45.   detect;
  46. end.
  47.  
  48. program test;
  49. uses
  50.   cursor;
  51. begin
  52.   writeln(cursor.maxSize);
  53.   cursor.setSize(cursor.maxSize);
  54.   readln;        {block}
  55.   cursor.setSize(0);
  56.   readln;                     {hidden}
  57.   cursor.setSize(cursor.maxSize div 2);
  58.   readln;  {half}
  59.   cursor.setSize(2);
  60.   readln;                     {normal}
  61. end.
  62.